Think of it like a train. The programmer always stores the first node of the list. This would be the engine of the train. The pointer is the connector between coaches of the train. Every time the train ads a car, it uses the connectors to add a new car. This is like a programmer using the keyword new to create a pointer to a new struct or class.